PowerShell-এ variable scope এবং automatic variables দুটি গুরুত্বপূর্ণ ধারণা, যেগুলি স্ক্রিপ্ট এবং কমান্ডের মধ্যে ডাটা ব্যবস্থাপনা ও প্রসেসিংয়ের জন্য গুরুত্বপূর্ণ। Variable scope কিভাবে একটি ভ্যারিয়েবলকে নির্দিষ্ট স্কোপে অ্যাক্সেস করা যাবে তা নির্ধারণ করে, এবং automatic variables হল predefined ভ্যারিয়েবল যেগুলি PowerShell দ্বারা স্বয়ংক্রিয়ভাবে তৈরি হয় এবং বিশেষ কাজের জন্য ব্যবহৃত হয়।
Variable Scope
PowerShell-এ ভ্যারিয়েবল গুলি বিভিন্ন scope বা পরিসরে (environment) কাজ করতে পারে, যা নির্ধারণ করে ভ্যারিয়েবলটি কোথায় এবং কিভাবে অ্যাক্সেস করা যাবে। স্কোপ একটি ভ্যারিয়েবলের জীবনের এলাকা (lifetime) ও অ্যাক্সেসযোগ্যতাকে সংজ্ঞায়িত করে।
PowerShell এর বিভিন্ন স্কোপ:
- Global Scope:
- গ্লোবাল স্কোপ হল সিস্টেমের সব PowerShell সেশন বা স্ক্রিপ্টের জন্য দৃশ্যমান। গ্লোবাল স্কোপে একটি ভ্যারিয়েবল ঘোষণা করলে, এটি সব সেশনে এবং স্ক্রিপ্টে অ্যাক্সেসযোগ্য থাকে।
উদাহরণ:
$x = 10 # Global scope function Test { Write-Output $x # Global variable access } Test
- Local Scope:
- লোকাল স্কোপ হলো একটি স্ক্রিপ্ট বা ফাংশনের ভিতরে যে ভ্যারিয়েবল ঘোষণা করা হয়, তা শুধুমাত্র সেই স্ক্রিপ্ট বা ফাংশনের ভিতরেই অ্যাক্সেসযোগ্য।
উদাহরণ:
function Test { $y = 20 # Local scope Write-Output $y } Test Write-Output $y # Error! $y is not accessible outside the function.
- Script Scope:
- স্ক্রিপ্ট স্কোপ হল সেই স্কোপ যেখানে স্ক্রিপ্ট ফাইলের ভিতরে সমস্ত ভ্যারিয়েবল অ্যাক্সেসযোগ্য থাকে। স্ক্রিপ্টের ভিতরে কোন ভ্যারিয়েবল ঘোষণা করলে, তা স্ক্রিপ্টের সব জায়গাতেই কার্যকর।
উদাহরণ:
$z = 30 # Script scope Write-Output $z # Can be accessed in the script
- Private Scope:
- প্রাইভেট স্কোপ একটি ভ্যারিয়েবলকে শুধুমাত্র তার ডিফাইন করা স্কোপের ভিতরে সীমাবদ্ধ রাখে। একে সাধারণত
privateমডিফায়ার দিয়ে প্রকাশ করা হয়।
- প্রাইভেট স্কোপ একটি ভ্যারিয়েবলকে শুধুমাত্র তার ডিফাইন করা স্কোপের ভিতরে সীমাবদ্ধ রাখে। একে সাধারণত
Automatic Variables
PowerShell-এ কিছু ভ্যারিয়েবল আগে থেকেই সংজ্ঞায়িত থাকে, যেগুলিকে automatic variables বলা হয়। এগুলি PowerShell সিস্টেম দ্বারা স্বয়ংক্রিয়ভাবে তৈরি হয় এবং বিভিন্ন কার্যকরী কাজের জন্য ব্যবহৃত হয়। এগুলি স্ক্রিপ্ট, কমান্ড, অথবা সেশনের মাধ্যমে অ্যাক্সেস করা যায়।
কিছু গুরুত্বপূর্ণ Automatic Variables:
- $null:
- একটি বিশেষ মান যা নাল বা খালি মান নির্দেশ করে। সাধারণত ভ্যালু অ্যাসাইন করার জন্য ব্যবহার করা হয়।
উদাহরণ:
$a = $null
- $?:
- এটি শেষ রান করা কমান্ডের সাফল্য বা ব্যর্থতার স্টেটাস দেখায়। যদি শেষ কমান্ড সফল হয়, তবে এর মান
$true, এবং যদি ব্যর্থ হয়, তবে$false। উদাহরণ:
Get-Item "C:\NonExistentFile" Write-Output $? # False, because the file does not exist.
- এটি শেষ রান করা কমান্ডের সাফল্য বা ব্যর্থতার স্টেটাস দেখায়। যদি শেষ কমান্ড সফল হয়, তবে এর মান
- $_:
- এটি পাইপলাইনের বর্তমান অবজেক্টের প্রতি ইঙ্গিত করে, অর্থাৎ যেখানে পাইপলাইনে প্রক্রিয়া হচ্ছে সেখানে সেই অবজেক্টটি রেফারেন্স করে।
উদাহরণ:
Get-Process | Where-Object { $_.CPU -gt 100 }
- $args:
- এটি স্ক্রিপ্ট বা ফাংশনের প্যারামিটার হিসেবে প্রেরিত আর্গুমেন্টগুলোর একটি অ্যারে ধারণ করে।
উদাহরণ:
function Test-Args { Write-Output $args[0] } Test-Args "Hello" # Output: Hello
- $PSCmdlet:
- এটি একটি বিশেষ ভ্যারিয়েবল, যা আপনি যদি একটি কাস্টম cmdlet লিখেন, তখন তা ব্যবহার করতে পারেন। এটি সেই cmdlet এর প্রসঙ্গ (context) প্রদান করে।
উদাহরণ:
$PSCmdlet.MyInvocation
- $HOME:
- এটি ব্যবহারকারীর হোম ডিরেক্টরি নির্দেশ করে।
উদাহরণ:
Write-Output $HOME
- $PID:
- এটি PowerShell সেশন বা স্ক্রিপ্টের প্রসেস আইডি প্রদান করে।
উদাহরণ:
Write-Output $PID # Outputs the current process ID
- $LASTEXITCODE:
- এটি শেষ রান করা প্রোগ্রাম বা কমান্ডের এক্সিট কোড (exit code) প্রদর্শন করে।
উদাহরণ:
$LASTEXITCODE # Displays the exit code of the last run command
- $THIS:
- এটি পণ্য বা ক্লাসের বর্তমান অবজেক্টের প্রতি ইঙ্গিত করে।
Variable Scope এবং Automatic Variables এর ব্যবহার
PowerShell স্ক্রিপ্ট এবং কমান্ডের মধ্যে ভ্যারিয়েবল ব্যবস্থাপনা গুরুত্বপূর্ণ, এবং স্কোপের মাধ্যমে ভ্যারিয়েবলগুলির অ্যাক্সেস কন্ট্রোল করা যায়। Automatic variables আপনাকে আরও কার্যকরী স্ক্রিপ্ট এবং সিস্টেম ম্যানেজমেন্ট করতে সহায়তা করে, যেমন $? দিয়ে কমান্ডের সফলতা চেক করা বা $_ দিয়ে পাইপলাইন প্রসেসিং করা।
PowerShell-এ ভ্যারিয়েবল স্কোপ ও অটোমেটিক ভ্যারিয়েবলগুলির সঠিক ব্যবহার আপনাকে আরও উন্নত স্ক্রিপ্টিং অভিজ্ঞতা প্রদান করবে।
Read more